#include "crossbit/ExecutionEngine.h"

#include "crossbit/ELFMemoryImage.h"
#include "crossbit/MIPSInterpreter.h"
#include "crossbit/MIPSProcessorState.h"
#include "crossbit/X86Translator.h"
#include "crossbit/FIFOTcache.h"
#include "crossbit/MIPSSyscallHandler.h"

#define TCACHE_SIZE	1024*1024

int main(int argc, char *argv[])
{
				MemoryManger	mm;
				SimpleTCache	tcache( TCACHE_SIZE, &mm );

				ELFMemoryImage 	img( argv[1], argc-1, &argv[1] );	
				MIPSInterpreter interp;
				VBlockBuilder builder;
				MIPSProcessorState ps;
				X86Translator	tr( &ps );
				MIPSSyscallhandler sh;

				ExecutionEngine ee( &img, &mm, &interp, &builder, &tcache, &tr, &sh );
				ee.run();
}
